We present data-oblivious algorithms in the external-memory model forcompaction, selection, and sorting. Motivation for such problems comes fromclients who use outsourced data storage services and wish to mask their dataaccess patterns. We show that compaction and selection can be donedata-obliviously using $O(N/B)$ I/Os, and sorting can be done, with a highprobability of success, using $O((N/B)\log_{M/B} (N/B))$ I/Os. Our methods usea number of new algorithmic techniques, including data-oblivious uses ofinvertible Bloom lookup tables, a butterfly-like compression network,randomized data thinning, and "shuffle-and-deal" data perturbation. Inaddition, since data-oblivious sorting is the bottleneck in the "inner loop" inexisting oblivious RAM simulations, our sorting result improves the amortizedtime overhead to do oblivious RAM simulation by a logarithmic factor in theexternal-memory model.
展开▼
机译:我们在外部内存模型中提供了数据可忽略的算法,用于压缩,选择和排序。产生此类问题的动机来自使用外包数据存储服务并希望掩盖其数据访问模式的客户端。我们展示了压缩和选择可以使用$ O(N / B)$ I / O明显地完成数据,并且可以使用$ O((N / B)\ log_ {M / B}(N / B))$ I / O。我们的方法使用了许多新的算法技术,包括对不可逆的Bloom查找表的数据不了解的使用,类似蝴蝶的压缩网络,随机化的数据细化以及“随机交易”的数据扰动。另外,由于对数据不了解的排序是不存在的不了解RAM仿真的“内部循环”中的瓶颈,因此我们的排序结果可以通过外部内存模型中的对数因子来改善摊销时间开销,从而不进行对RAM的仿真。
展开▼